//
//  EOCSquare.m
//  Test
//
//  Created by 杨德龙 on 2017/6/23.
//  Copyright © 2017年 HipalSports. All rights reserved.
//

#import "EOCSquare.h"

@implementation EOCSquare

//  即时默认的 init 方法 也要重写 我们可以想象如果 没有重写 会
//  调用其父类的 initWithWidth  方法生成的 10 5 的正方形 的例子
-(instancetype)init
{
    return [self initWithDimension:5.0f];
}

- (instancetype)initWithDimension:(float)dimension
{
    NSLog(@"square initWith dimension ---");
    return [super initWithWidth:dimension andHeight:dimension];
}


//  很有可能用户会调用 initWithWidth andHeight 方法
//  我们需要保证 square 正方形 的 width 和 height 是一致的
- (instancetype)initWithWidth:(float)width andHeight:(float)height
{
    NSLog(@"square init width and height ");
    float dimension=MAX(width, height);
    return [self initWithDimension:dimension];
    
}

#pragma mark ----  NSCoding 

/*
    !!!  由于父类中 写了这个 initWithCoder 方法 
    所以我们
    initCoder 中也要遵守NSCoding 协议 如果没有 调用超类的同名方法.而是调用了自制的初始化方法
    或者超类的其他初始化方法 .那么EOCRectangle 类的initWithCoder 方法就没机会执行
    于是  无法将 _width 和 _height 这两个实例 变量解码了
 */
- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self=[super initWithCoder:aDecoder]) {
        
    }
    return self;
}





@end
